---
title: Rollouts
description: Incrementally deploy updates on a new branch to a channel.
---

import { Terminal } from '~/ui/components/Snippet';

> **info** Available for SDK 50 and above ([`expo-updates`](/versions/latest/sdk/updates/) >= 0.23.0).

Rollouts incrementally deploy updates on a new branch to a specific channel. With rollouts, you can roll out updates from one branch to a percentage of end users and leave the remaining percentage of users on the current branch. This is useful when testing a new feature to minimize the risk of introducing bugs or other issues to our production environment.

## Start a rollout

To start a rollout, ensure you have EAS CLI version `4.0.0` or above installed. Then, run the following command:

<Terminal cmd={['$ eas channel:rollout']} />

In the terminal, an interactive guide will assist you in selecting a channel, choosing a branch for the rollout, and setting the percentage of users for the rollout. To increase or decrease the rollout amount, run the command again and choose the `Edit` option to adjust the rollout percentage.

## End a rollout

Two methods are available to end a rollout when you choose the `End` option in the interactive guide:

- **Republish and revert:** This option can be used once you are confident with the update served from the new branch. This will publish the update again on the old branch and users will be reverted back to it.
- **Revert:** Choose to disregard the updates on the new branch and return users to the old branch.

## Work with rollouts

- Only one branch can be rolled out on a channel at a single time.
- To see the state of the rollout, use the `eas channel:rollout` command. Website support is coming soon.
- When a rollout is in progress, you can publish updates to both rolled out and current branches by running `eas update --branch [branch]`, for example.
- `eas update --channel [channel]` cannot be used when a rollout is in progress since it cannot know which branch to associate the update with.
